import { http } from './index'

// 机构人员树
/**
 * 根据上级机构ID查询机构和机构所属人员列表
 * @param {*} parentId 上级id , isLeader 是否查询局领导, existTopLeader 是否查询顶级领导
 * @returns
 */
export function getUnitAndUserListByParentId (parentId, isLeader, existTopLeader, isTest) {
  const url = isLeader ? '/system/unituserExt/getUnitAndUserLeaderListStatByParentId' : '/system/unituserExt/getUnitAndUserListStatByParentId'
  return http.get(`${url}/${parentId}?existTopLeader=${existTopLeader}&isTest=${isTest}`)
}

/**
 * 根据userIds查询机构用户相关信息
 * @param {*} id   userIds
 * @returns
 */
export function getTreeUnitUsersByUserIds (userIds) {
  return http.get(`/system/unituserExt/getTreeUserListByIds?userIds=${userIds}`)
}

/**
 * 查询机构
 * @param {*} topUnitId 顶级机构id, topUnitName 顶级机构名称
 * @returns
 */
export function getCrumbsByTopUnit (topUnitId, topUnitName) {
  return http.get(`/system/unituserExt/getCrumbsData/${topUnitId}/${topUnitName}`)
}

/** 根据机构ids,获取机构下所有人员id
 * @param {*} ids
 * @return function
 */
export function getTreeUserListByUnitIds (unitIds) {
  return http.get(`/system/unituserExt/getTreeUserListByUnitIds?unitIds=${unitIds}`)
}

/**
* 搜索-模糊查询（机构人员树）
* @param {*} keyword 关键字, existTopLeader 是否查询顶级领导
* @returns
*/
export function getTreeUserListByName (keyword, existTopLeader) {
  return http.get(`system/unituserExt/getTreeUserListByName/${keyword}?existTopLeader=${existTopLeader}`)
}

// 机构树
/**
 * 根据上级机构ID查询机构和机构所属人员列表
 * @param {*} parentId 上级id , needUnitType 1表示选择所有机构处室，2表示只能选择机构，3表示只能选择部门处事
 * @returns
 */
export function getUnitListByParentIdAndNeedUnitType (parentId, needUnitType) {
  return http.get(`/system/unituserExt/getUnitListStatByParentIdAndNeedUnitType/${parentId}?needUnitType=${needUnitType}`)
}

/**
 * 根据userIds获取返现数据
 * @param {*} id   userIds
 * @returns
 */
export function getTreeUnitListByUserIds (unitIds) {
  return http.get(`/system/unituserExt/getTreeUnitListByIds?unitIds=${unitIds}`)
}

/**
* 搜索-模糊查询(机构树)
* @param {*} keyword 关键字, needUnitType 1表示选择所有机构处室，2表示只能选择机构，3表示只能选择部门处事, topUnitId 顶级机构id
* @returns
*/
export function getTreeUnitLisByNameOrCode (keyword, needUnitType, topUnitId) {
  return http.get(`/system/unituserExt/getUnitListStatByNameOrCode/${keyword}?needUnitType=${needUnitType}&pid=${topUnitId}`)
}

// 机构数据权限树
/**
 * 根据上级机构ID查询机构和机构所属人员列表
 * @param {*} parentId 上级id, menuCode 菜单code
 * @returns
 */
export function getUnitListDataAuthByParentIdAndNeedUnitType (parentId, menuCode) {
  return http.get(`/system/unituserExt/getUnitListStatDataAuthByParentIdAndNeedUnitType/${parentId}/${menuCode}`)
}

/**
 * 搜索-模糊查询（机构数据权限树）
 * @param {*} keyword 关键字, menuCode 菜单code, needUnitType 1表示选择所有机构处室，2表示只能选择机构，3表示只能选择部门处事, topUnitId 顶级机构id
 * @returns
 */
export function getUnitsDataAuthByNameOrCode (keyword, menuCode, needUnitType, topUnitId) {
  return http.get(`/system/unituserExt/getUnitListStatDataAuthByNameOrCode/${keyword}/${menuCode}?needUnitType=${needUnitType}&pid=${topUnitId}`)
}

/**
 * 根据id列表获取人员信息
 */
export function listUserUnitTreeReverse (ids) {
  return http.get('/system/unituserExt/getTreeUserListByIds?userIds=' + ids.toString())
}

export function listUnitUser (ids) {
  return http.get(`/system/SysUnituser/getUnitUserOrSubUserListByUnitIds/1?unitIds=${ids}`)
}

/**
 * 用户角色下拉
 */
export function getRoleList () {
  return http.get('/system/SysUnituser/getRoleList')
}